8.04 常用字段
AutoFiele
●int自增列,必须填入参考 primaya_key=true.
●当model中如果没有自增列,则自动会创建一个列名为id的列。
BigAutoField
●BigAutoField继承自autoField
●bigint自增列,必须填入参考 primaya_key=true.
IntegerField
●整型(有符号的)-2147483648~2147483647
BigIntgerField
●长整型(有符号的)-922372036854775808-922372036854775807
SmallIntegerField
●小整数 -32768~32767
PositiveSmallIntegerField
●正整数 ~32767
BooleanField
●布尔值类型
FloatField
●浮点类型
DecimalField
●10进制小数
●参数:max_digits 小数总长度,decimal_places 小数位长度。
CharField
●字符类型,必须提供max_length 参数,表示字符最大长度。
TextField
●文件类型
binanryField
●二进制类型
DateTimeField
●日期时间字段,格式YYYY-MM-DD HH:MM[:SS[,uuuuuu]][TZ],相当于python中的datetime.datetime()实例
●配置 auto_now_add=True,创建数据记录的时候会把当前时间添加到数据库。
●配置上 auto_now =True,每次更新数据记录的时记会更新该字段。
DateField
●日期字段,格式YYYY-MM-DD,相当于python中的datatime.date ()实例
TimeField
●日期字段,格式HH:MM[:SS[,uuuuuu]]
EmailField(charField)
●字符串类型,Django Admin以及ModelForm中提供验证机制
IPAddressField(charField)
●字符串类型,Django Admin以及ModelForm中提供验证IPV4机制
URLField(charField)
●字符串类型,Django Admin以及ModelForm中提供验证URL
UUIDField(charField)
●字符串类型,Django Admin以及ModelForm中提供对UUID格式的验证
Django ORM也支技自定义字段,初学者暂时用不到。
对应关系(部分)
| ORM类型 | mysql类型 |
|---|---|
| AutoField': | 'integer AUTO_INCREMENT' |
| BigAutoField': | 'bigint AUTO_INCREMENT' |
| BinaryField': | 'longblob', |
| BooleanField': | 'bool', |
| CharField': | 'varchar(%(max_length)s)', |
| CommaSeparatedIntegerField': | 'varchar(%(max_length)s)', |
| DateField': | 'date', |
| DateTimeField': | 'datetime', |
| DecimalField': | 'numeric(%(max_digits)s%(decimal_places)s)', |
| DurationField': | 'bigint', |
| FileField': | 'varchar(%(max_length)s)', |
| FilePathField': | 'varchar(%(max_length)s)', |
| FloatField': | 'double precision' |
| IntegerField': | 'integer', |
| BigIntegerField': | 'bigint', |
| IPAddressField': | 'char(15)', |
| GenericIPAddressField': | 'char(39)', |
| NullBooleanField': | 'bool', |
| OneToOneField': | 'integer', |
| PositiveIntegerField': | 'integer UNSIGNED' |
| PositiveSmallIntegerField': | 'smallint UNSIGNED' |
| SlugField': | 'varchar(%(max_length)s)', |
| SmallIntegerField': | 'smallint', |
| TextField': | 'longtext', |
| TimeField': | 'time', |
| UUIDField': | 'char(32)', |
**其他ORM字段参数(部分)**
| ORM类型 | mysql类型 |
|---|---|
| null | 数据库中字段是否可以为空 |
| db_column | 数据库中字段的列名 |
| default | 数据库中字段的默认值 |
| primary_key | 数据库中字段是否为主键 |
| db_index | 数据库中字段是否可以建立索引 |
| unique | 数据库中字段是否可以建立唯一索引 |
| unique_for_date | 数据库中字段【日期】部分是否可以建立唯一索引 |
| unique_for_month | 数据库中字段【月】部分是否可以建立唯一索引 |
| unique_for_year | 数据库中字段【年】部分是否可以建立唯一索引 |
| verbose_nameAdmin | 中显示的字段名称 |
| blankAdmin | 中是否允许用户输入为空 |
| editableAdmin | 中是否可以编辑 |
| help_textAdmin | 中该字段的提示信息 |